package params

import (
	"fmt"
	"parse/src/configs"
	"parse/src/interpreter"
	"parse/src/repl"
	"parse/src/utils"
)

// 这个是处理参数的函数
func DealParams(args []string, interpreterObj *interpreter.Interpreter, contextObj *interpreter.Context) {
	for _, value := range args {
		c := len(value)
		if value[0] == '-' { // 表示为系统参数
			t := value[1:c] // 后面的字符
			fmt.Println("欢迎来到 easy go 程序解析器")
			fmt.Println("项目地址：" + configs.GetConfig("GITHUB").(string))
			fmt.Println("版本：V1")
			fmt.Println("以下是帮助命令：")
			switch t {
			case "version", "V":
				fmt.Println("	V1")
			case "author", "A":
				fmt.Println("	余飞")
			case "help", "H", "h":
				fmt.Println("	可执行程序	-help,-h,-H：	帮助")
				fmt.Println("	可执行程序	-version,-V：	查询版本")
				fmt.Println("	可执行程序	-author,-A：	查询作者")
			default:
				fmt.Println("	没有相关的选项，请输入参数 -help 或者 -h 或者 -H来得到帮助")
				break
			}
		} else { // 表示第一个参数为文件
			input := utils.ReadFile(value)
			if input != "" {
				result, err := repl.Start(input, contextObj, interpreterObj) // 开始运行程序
				interpreter.DealFileResult(result, err)
			}
		}
	}
}
